Snapcraft does not take the environment variables into account during build
Metadata
Current evaluation
No evaluation has been recorded for this issue yet.
Issue body
snapcraft.yaml:
name: test-app
version: dev
summary: TODO summary
description: TODO description
base: core22
grade: devel
confinement: devmode
parts:
app-jar:
source: ./build/libs/
source-type: local
plugin: dump
stage-packages:
- openjdk-17-jdk # TODO headless?
apps:
server:
command: $JAVA_HOME/bin/java -jar app.jar
environment:
JAVA_HOME: $SNAP/usr/lib/jvm/java-17-openjdk-amd64
PATH: $JAVA_HOME/bin:$PATH
Build output:
Cannot pack snap file: Command '['snap', 'pack', '--filename', 'test-app_dev_amd64.snap', '--compression', 'xz', PosixPath('/root/prime'), PosixPath('/root/project')]' returned non-zero exit status 1. (2023/01/09 16:17:11.345666 container.go:215: in snap "test-app": path "$JAVA_HOME" does not exist
2023/01/09 16:17:11.345698 container.go:215: in snap "test-app": path "$JAVA_HOME/bin/java" does not exist
2023/01/09 16:17:11.345702 container.go:215: in snap "test-app": path "$JAVA_HOME/bin" does not exist
error: cannot pack "/root/prime": snap is unusable due to missing files)
Failed to execute pack in instance.
Workaround: the command should not use environment variables.
command: usr/lib/jvm/java-17-openjdk-amd64/bin/java -version
Discussion: https://forum.snapcraft.io/t/simple-java-application/33429/13
Evaluation history
No evaluation history available.